package utils

import (
	"fmt"
	"math"
)

// HasPoint 检查 num 是否有小数
//
// 如 hasPoint(1.2) -> true
func HasPoint[T float32 | float64](num T) bool {
	return float64(num) != math.Trunc(float64(num))
}

// PrettyFloat2 对 num 进行格式化
//
// 若 num 无小数，展示 num 的字符串
// 若 num 有小数，展示 num 的两位小数格式字符串
// 若 num 有小数且小数位较多，则四舍五入展示两位小数格式字符串
func PrettyFloat2[T float32 | float64](num T) string {
	if HasPoint[T](num) {
		return fmt.Sprintf("%.2f", num)
	}
	return fmt.Sprintf("%.0f", num)
}
